//
//  ConstellationTableViewController.swift
//  BirthdayManager
//
//  Created by Apple on 2020/12/16.
//  Copyright © 2020 Charles. All rights reserved.
//

import UIKit

class ConstellationTableViewController: UITableViewController {
    
    //声明一个数组
    var constellationInfo=[constellation]()
    
    
    //存盘
    func saveConstellations(){
        //判断是否成功
        //把对象people存到model的路径里
        let success=NSKeyedArchiver.archiveRootObject(constellationInfo, toFile:constellation.userPath)
        if !success{
            print("failed...")
        }
    }
    
    //取盘
    func loadConstellations(){
        if let constellations = NSKeyedUnarchiver.unarchiveObject(withFile: constellation.userPath)as?[constellation]{
            constellationInfo=constellations
            print("load file successful!")
        }else{
            print("failed")
        }
    }
    
    //初始化数组
    func initArray()->Void{
        
        constellationInfo.append(constellation(constellationName:"白羊座", dateRange:"3.21-4.19",constellationType:"火象星座", constellationDescription:"•  日期：3.21-4.19\n•  星座类型：火象星座\n•  特点：热情活力\n•  掌管宫位：第一宫\n•  阴阳性：阳性\n•  最大特征：控制\n•  主管星：火星\n•  颜色：红色\n•  珠宝：红宝石\n•  幸运号码：5\n•  金属：铁\n白羊座有一种让人看见就觉得开心的感觉，因为总是看起来都是那么地热情、阳光、乐观、坚强，对朋友也慷慨大方，性格直来直往，就是有点小脾气。白羊男有大男人主义的性格，而白羊女就是女汉子的形象",avatar:UIImage(named: "baiyang"),poster:UIImage(named: "baiyangpost")))
        
        constellationInfo.append(constellation(constellationName:"金牛座", dateRange:"4.20-5.20",constellationType:"土象星座", constellationDescription:"•  日期：4.20-5.20\n•  星座类型：土象星座\n•  特点：稳健固执\n•  掌管宫位：第二宫\n•  阴阳性：阴性\n•  最大特征：财富\n•  主管星：金星\n•  颜色：粉色\n•  珠宝：翡翠、玉\n•  幸运号码：6\n•   金属：木\n金牛座很保守，喜欢稳定，一旦有什么变动就会觉得心里不踏实，性格也比较慢热，但你是理财高手，对于投资理财都有着独特的见解。金牛男的性格有点儿自我，而金牛女就喜欢投资自己，想要过得更好。",avatar:UIImage(named: "jinniu") ,poster:UIImage(named: "jinniupost")))
            
            constellationInfo.append(constellation(constellationName:"双子座", dateRange:"5.21-6.21",constellationType:"风象星座", constellationDescription:"•  日期：5.21-6.21\n•  星座类型：风象星座\n•  特点：花心多变\n•  掌管宫位：第三宫\n•  阴阳性：阳性\n•  最大特征：思想\n•  主管星：水星\n•   颜色：黄色\n•  珠宝：猫眼石\n•  幸运号码：7\n•   金属：水银\n双子座喜欢追求新鲜感，有点儿小聪明，就是耐心不够，往往做事都是三分钟热度，难以坚持，但是你的可爱性格会让很多人都喜欢跟你做朋友。双子男表面很花心，其实深情，而双子女就喜欢求新和求变。",avatar:UIImage(named: "shuangzi") ,poster:UIImage(named: "shuangzipost")))
            
        constellationInfo.append(constellation(constellationName:"巨蟹座", dateRange:"6.22-7.22",constellationType:"水象星座", constellationDescription:"•  日期：6.22-7.22\n•  星座类型：水象星座\n•   特点：敏感柔情\n•  掌管宫位：第四宫\n•  阴阳性：阴性\n•  最大特征：感觉\n•  主管星：月亮\n•  颜色：绿色\n•  珠宝：珍珠\n•  幸运号码：2\n•  金属：金\n巨蟹座的情绪容易敏感，也缺乏安全感，容易对一件事情上心，做事情有坚持到底的毅力，为人重情重义，对朋友、家人都特别忠实，巨蟹男是一等一的好男人，顾家爱家人，巨蟹女充满母性光环，非常有爱心。",avatar:UIImage(named: "juxie"),poster:UIImage(named: "juxiepost")))
            
            constellationInfo.append(constellation(constellationName:"狮子座", dateRange:"7.23-8.22",constellationType:"火象星座", constellationDescription:"•  日期：7.23-8.22\n•  星座类型：火象星座\n•  特点：骄傲威严\n•  掌管宫位：第五宫\n•  阴阳性：阳性\n•  最大特征：权力\n•  主管星：太阳\n•  颜色：红色、黄色\n•  珠宝：琥珀\n•  幸运号码：19\n•   金属：黄金\n狮子座有着宏伟的理想，总想靠自己的努力成为人上人，你向往高高在上的优越感，也期待被仰慕被崇拜的感觉，有点儿自信有点儿自大。狮子男的大男人气息很重，爱面子，狮子女热情阳光，对朋友讲义气。",avatar:UIImage(named: "shizi") ,poster:UIImage(named: "shizipost")))
            
            constellationInfo.append(constellation(constellationName:"处女座", dateRange:"8.23-9.22",constellationType:"土象星座", constellationDescription:"•  日期：8.23-9.22\n•  星座类型：土象星座\n•  特点：完美理性\n•  掌管宫位：第六宫\n•  阴阳性：阴性\n•  最大特征：分析力\n•  主管星：水星\n•  颜色：灰色\n•  珠宝：蓝宝石、琥珀\n•  幸运号码：7\n•   金属：水银\n处女座虽然常常被黑，但你还是依然坚持追求自己的完美主义，因为在你看来，生活不能将就，追求的完美更不能将就，有目标才有进步，当然也需要鼓励。处女男的毅力很强，能坚持，处女女的求知欲很强。",avatar:UIImage(named: "chunv") ,poster:UIImage(named: "chunvpost")))
            
            constellationInfo.append(constellation(constellationName:"天秤座", dateRange:"9.23-10.23",constellationType:"风象星座", constellationDescription:"•  日期：9.23-10.23\n•  星座类型：风象星座\n•  特点：公平和谐\n•  掌管宫位：第七宫\n•  阴阳性：阳性\n•  最大特征：衡量抉择\n•  主管星：金星\n•  颜色：褐色\n•  珠宝：珊瑚、琥珀\n•  幸运号码：3\n•   金属：木\n天秤座常常追求平等、和谐，擅于察言观色，交际能力很强，因此真心朋友不少，因为你也足够真诚，但是最大的缺点就是面对选择总是犹豫不决。天秤男容易在乎自己而忽略别人，天秤女就喜欢被陪伴的感觉。",avatar:UIImage(named: "tianping") ,poster:UIImage(named: "tianpingpost")))
            
            constellationInfo.append(constellation(constellationName:"天蝎座", dateRange:"10.24-11.22",constellationType:"水象星座", constellationDescription:"•  日期：10.24-11.22\n•  星座类型：水象星座\n•  特点：神秘敏锐\n•  掌管宫位：第八宫\n•  阴阳性：阴性\n•  最大特征：渴望\n•  主管星：冥王星\n•  颜色：紫色、黑色\n•  珠宝：碧玉、黑水晶\n•  幸运号码：4\n•   金属：铁\n天蝎座精力旺盛、占有欲极强，对于生活很有目标，不达到目的誓不罢休，复仇心理重，记仇会让自己不顾一切报复曾经伤害过你的人。天蝎男自我主义色彩很强烈，天蝎女的自我保护意识很强，不容易接近。",avatar:UIImage(named: "tianxie") ,poster:UIImage(named: "tianxiepost")))
            
            constellationInfo.append(constellation(constellationName:"射手座", dateRange:"11.23-12.21",constellationType:"火象星座", constellationDescription:"•  日期：11.23-12.21\n•  星座类型：火象星座\n•  特点：自由乐观\n•  掌管宫位：第九宫\n•  阴阳性：阳性\n•  最大特征：自由\n•  主管星：木星\n•  颜色：浅蓝色\n•  珠宝：紫水晶\n•  幸运号码：6\n•   金属：锡\n射手座崇尚自由，勇敢、果断、独立，身上有一股勇往直前的劲儿，不管有多困难，只要想，就能做，你的毅力和自信是难以击倒的。射手男酷爱自由，讨厌被束缚，射手女性格简单直接，不耍心计，可是任性。",avatar:UIImage(named: "sheshou") ,poster:UIImage(named: "sheshoupost")))
            
            constellationInfo.append(constellation(constellationName:"魔蝎座", dateRange:"12.22-1.19",constellationType:"土象星座", constellationDescription:"•  日期：12.22-1.19\n•  星座类型：土象星座\n•  特点：执著现实\n•  掌管宫位：第十宫\n•  阴阳性：阴性\n•  最大特征：实际\n•  主管星：土星\n•  颜色：咖啡色、黑\n•  珠宝：黑玉\n•  幸运号码：4\n•   金属：银\n摩羯座是十二星座中最有耐心，为事最小心、也是最善良的星座。他们做事脚踏实地，也比较固执，不达目的是不会放手的。他们的忍耐力也是出奇的强大，同时也非常勤奋。",avatar:UIImage(named: "moxie") ,poster:UIImage(named: "moxiepost")))
            
            constellationInfo.append(constellation(constellationName:"水瓶座", dateRange:"1.20-2.18",constellationType:"风象星座", constellationDescription:"•  日期：1.20-2.18\n•  星座类型：风象星座\n•  特点：自由博爱\n•  掌管宫位：第十一宫\n•  阴阳性：阳性\n•  最大特征：求知\n•  主管星：天王星\n•  颜色：古铜色\n•  珠宝：黑珍珠\n•  幸运号码：22\n•   金属：蛋白石\n水瓶座的人很聪明，他们最大的特点是创新，追求独一无二的生活，个人主义色彩很浓重的星座。他们对人友善又注重隐私。水瓶座绝对算得上是”友谊之星“，他喜欢结交每一类朋友，但是却很难与他们交心。",avatar:UIImage(named: "shuiping") ,poster:UIImage(named: "shuipingpost")))
            
            constellationInfo.append(constellation(constellationName:"双鱼座", dateRange:"2.19-3.20",constellationType:"水象星座", constellationDescription:"•  日期：2.19-3.20\n•  星座类型：水象星座\n•  特点：浪漫梦幻\n•  掌管宫位：第十二宫\n•  阴阳性：阴性\n•  最大特征：滥情\n•  主管星：海王星\n•  颜色：白色\n•  珠宝：象牙石\n•  幸运号码：11\n•   金属：铜\n双鱼座是十二宫最后一个星座，他集合了所有星座的优缺点于一身，同时受水象星座的情绪化影响，使他们原来复杂的性格又添加了更复杂的一笔。双鱼座的人最大的优点是有一颗善良的心，他们愿意帮助别人。",avatar:UIImage(named: "shuangyu") ,poster:UIImage(named: "shuangyupost")))
        
    }
    
    //出口
    @IBAction func saveToList(segue:UIStoryboardSegue){
        if let sourceVC=segue.source as? ConstellationViewController,let constellations=sourceVC.constellationMessage{
            if let selectedIndex=tableView.indexPathForSelectedRow{
                constellationInfo[selectedIndex.row]=constellations
                tableView.reloadRows(at: [selectedIndex], with: UITableView.RowAnimation.automatic)
            }else{
                
            }
            saveConstellations()
        }
    }
    
    @IBAction func cancelToList(segue:UIStoryboardSegue){
        
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        initArray()
        
//        if (constellationInfo.isEmpty){
//            initArray()
//        }else{
//            loadConstellations()
//        }
        
        
        // Uncomment the following line to preserve selection between presentations
        // self.clearsSelectionOnViewWillAppear = false

        // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
        // self.navigationItem.rightBarButtonItem = self.editButtonItem
    }

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return constellationInfo.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "constellationCell", for: indexPath) as!CTableViewCell

        // Configure the cell...
        
        cell.avatarItem?.image=constellationInfo[indexPath.row].avatar
        cell.nameItem?.text=constellationInfo[indexPath.row].constellationName
        cell.typeItem?.text=constellationInfo[indexPath.row].constellationType
        cell.dateItem?.text=constellationInfo[indexPath.row].dateRange
        
        return cell
    }

    /*
    // Override to support conditional editing of the table view.
    override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
        // Return false if you do not want the specified item to be editable.
        return true
    }
    */

    /*
    // Override to support editing the table view.
    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {
            // Delete the row from the data source
            tableView.deleteRows(at: [indexPath], with: .fade)
        } else if editingStyle == .insert {
            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
        }    
    }
    */

    /*
    // Override to support rearranging the table view.
    override func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {

    }
    */

    /*
    // Override to support conditional rearranging of the table view.
    override func tableView(_ tableView: UITableView, canMoveRowAt indexPath: IndexPath) -> Bool {
        // Return false if you do not want the item to be re-orderable.
        return true
    }
    */

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let destVC=segue.destination as? ConstellationViewController{
            if let selectedIndex = tableView.indexPathForSelectedRow?.row{
                destVC.constellationMessage=constellationInfo[selectedIndex]
            }
        }
    }

}
